package Day010_排序算法_异常.demo01_选择排序;

/*
    选择排序:选中数组的某个元素,其后面的元素依次和选中的元素进行两两比较，将较大的数据放在后面，
           依次从前到后选中每个元素，直至所有数据按要求完成排序

            1.如果有n个数据进行排序，总共需要比较n-1轮,每一轮比较完毕，下一次的比较就会少一个数据参与
            2..每一轮确定一个位置上的元素


    比较的轮数是外层循环
    每轮的比较内循环
    for (int i = 0;i < length-1;i++){

        for (int j = i + 1 ;j < length;j++){

        }
    }

 */

import java.util.Arrays;

public class Test {
    public static void main(String[] args) {

        int[] arr = {45, 25, 35, 55, 15};
        //选择排序
        //比较的轮数-外循环
        for (int i = 0; i < arr.length - 1; i++) {
            //每轮的比较次数-内循环
            for (int j = i + 1; j < arr.length; j++) {
                //arr[i] 与 arr[j]比较
                if (arr[i] > arr[j]) {
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(arr));

        //降序
        for (int i = 0; i < arr.length - 1; i++) {
            //每轮的比较次数-内循环
            for (int j = i + 1; j < arr.length; j++) {
                //arr[i] 与 arr[j]比较
                if (arr[i] < arr[j]) {
                    int temp = arr[j];
                    arr[j] = arr[i];
                    arr[i] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
    }
}
